/*
* Copyright (C) 2012-2013, <Aeihu.z, aeihu.z@gmail.com>.
*
* Game Scenario Maker is a free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* Version 2(GPLv2) as published by the Free Software Foundation.
*/

//#include "CAnimationScript.h"
//
//CAnimationScript::CAnimationScript()
//{
//    X =
//    Y = 
//    Index = 0;
//    Surf_Tilesets = NULL;
//    Running = false;
//    Animation_Contorl.SetCurrentFrame(0);
//}
//
//CAnimationScript::CAnimationScript(int framerate)
//{
//    X =
//    Y = 
//    Index = 0;
//    Surf_Tilesets = NULL;
//    Running = false;
//    Animation_Contorl.SetCurrentFrame(0);
//    Animation_Contorl.SetFrameRate(framerate);
//}
//
//int CAnimationScript::Start(int x, int y)
//{
//    if (Script.size() > 0)
//    {
//        if (Surf_Tilesets != NULL)
//        {
//            SDL_FreeSurface(Surf_Tilesets);
//            Surf_Tilesets = NULL;
//        }
//
//        Surf_Tilesets = CSurface::OnLoad(Script[0]->FileName.c_str());
//        
//        //if (!CSurface::Transparent(Surf_Tilesets,
//        //    CCommon::common.COLOR_KEY_RED, 
//        //    CCommon::common.COLOR_KEY_GREEN,
//        //    CCommon::common.COLOR_KEY_BLUE))
//        //    return -1;
//        if (Surf_Tilesets == NULL)
//            return -1;
//
//        X = x;
//        Y = y;
//        Index = 0;
//        Running = true;
//        Animation_Contorl.SetCurrentFrame(0);
//        Animation_Contorl.MaxFrames = Script[0]->MaxFrames + 1;
//
//        CSoundBank::SoundControl.PlaySE(Script[0]->SE);
//        return 1;
//    }
//    return 0;
//}
//
//void CAnimationScript::Next()
//{
//flag:
//    Index++;
//        
//    if (Index >= Script.size())
//    {
//        Stop();
//        //Index = 0;
//        //Running = false;
//    }
//    else if (Running && Index < Script.size())
//    {
//        Animation_Contorl.MaxFrames = Script[Index]->MaxFrames + 1;
//
//        if (Index > 0)
//            if(Script[Index]->FileName == Script[Index-1]->FileName)
//            {
//                CSoundBank::SoundControl.PlaySE(Script[Index]->SE);
//                return;
//            }
//
//        if (Surf_Tilesets != NULL)
//        {
//            SDL_FreeSurface(Surf_Tilesets);
//            Surf_Tilesets = NULL;
//        }
//
//        Surf_Tilesets = CSurface::OnLoad(Script[Index]->FileName.c_str());
//        
//        //if (!CSurface::Transparent(Surf_Tilesets,
//        //    CCommon::common.COLOR_KEY_RED, 
//        //    CCommon::common.COLOR_KEY_GREEN,
//        //    CCommon::common.COLOR_KEY_BLUE))
//        //    goto flag;
//
//        if (Surf_Tilesets == NULL)
//        {
//            goto flag;
//        }
//        CSoundBank::SoundControl.PlaySE(Script[Index]->SE);
//    }
//}
//
//void CAnimationScript::Stop()
//{
//    Index = 0;
//    Running = false;
//    if (Surf_Tilesets != NULL)
//    {
//        SDL_FreeSurface(Surf_Tilesets);
//        Surf_Tilesets = NULL;
//    }
//}
//
//void CAnimationScript::OnLoop()
//{
//    if (!Running)
//        return;
//
//    Animation_Contorl.OnAnimate();
//    int i = Animation_Contorl.GetCurrentFrame();
//    if (Animation_Contorl.GetCurrentFrame() >= Script[Index]->MaxFrames)
//    {
//        Animation_Contorl.SetCurrentFrame(0);
//
//        if (Script[Index]->Loop)
//            return;
//
//        Next();
//    }
//}
//
//void CAnimationScript::OnRender(SDL_Surface* Surf_Dest)
//{
//    if (!Running)
//        return;
//
//    int TilesetWidth = Surf_Tilesets->w / Script[Index]->Size;
//    int CurrentFrame = Animation_Contorl.GetCurrentFrame();
//
//    CSurface::OnDraw(Surf_Dest, Surf_Tilesets, 
//        X, Y,
//        ((Script[Index]->StartIndex + CurrentFrame) % TilesetWidth) * Script[Index]->Size, 
//        ((Script[Index]->StartIndex + CurrentFrame) / TilesetWidth) * Script[Index]->Size,
//        Script[Index]->Size, Script[Index]->Size);
//}
//
//void CAnimationScript::OnCleanup()
//{
//    if (Surf_Tilesets != NULL)
//    {
//        SDL_FreeSurface(Surf_Tilesets);
//        Surf_Tilesets = NULL;
//    }
//
//    for (int i = 0; i < Script.size(); i++)
//        delete Script[i];
//
//    Script.clear();
//}